char* create_vfs(char *vfs_path, int vfs_size);//1
char* mount_vfs(char *vfs_path);//2
char* unmount_vfs(char *vfs_path);//3
char* make_dir(char *pt,char *dt);//4
char* delete_dir(char *path);//5
char* move_dir(char *source,char *destination);//6
char* list_dir(char *directory_path, int flag, char *text_file_path);//7
char* add_file(char *pt, char *dt, char *data_file_path);//8 add file from hard disk
char* list_file(char *source_file_with_path, char *destination_file_path);//9
char* update_file(char *file_path, char *data_file_path);//10
char* remove_file(char *path);//11
char* move_file(char *source, char *destination);//12
char* copy_file(char *source_file_with_path, char *destination_path);//13
char* export_file(char *source_file_with_path, char *destination_file_path);//14


void traverse_file(node *);
int check_character(char *s, char ch);
void traversal(node *n);
char* add_slash(char *str);
char* file_extension(char *filename);// to get the filetype form a filename
node* find_prev(node *temp, char *dest);//
node* find_node(node *temp, char *dest);//
char* remove_first_slash(char *str);//
char* remove_slash(char *str);//
char* strip_name(char *t,char *c);//
int splits_directory(char *string1,char *store[],char *split_char1);//
void traversal1(node *n, char *deleted_text, char *dest);//
void traverse_write(node *n);//
int count_nodes(node *n);//
label* recreate_dir(fd *dir);//
int freelist_alloc();//to see what all are free 
char* readfile(char *data_file_path);//to read a particular file from hard disk
void mount();//
int write_into_file(int blockno, char *file_text);//to write into the vfs
char* getparent(char *s);
label* addfile_from_vfs(char *pt, node *file);// to add a fle file from one dir to another inside vfs for copyfile
void readfile_from_vfs(int blockno, fd *file);
int validate_name(char *str); // to validate special characters
void list_traversal(node *child, char *to_write);// to list the directories in a folder  and inside traversal.c
void append_traversal(node *parent, node *n, char *deleted_text, char *dest);
long int length_of_file(FILE *fp);


//HASH TABLE FUNCTIONS
void htable_init(h_node *hashtable);                        // fire up hashtable
void htable_insert(h_node *hashtable,fd file);           // insert fname into hashtable
void htable_resolve(h_node *hashtable,int loc,fd file1); // resolve collisions in hashtable
void htable_display(h_node *hashtable);                     // display hashtable
void htable_delete(h_node *hashtable,fd file1);
int  htable_hash(char *str); 
char* htable_search(h_node *hashtable,char *str,char *op);                             // hash fname for hashtable
void mount_hashTable();                     //mount function for hash table
void unmount_hashTable(h_node *hashtable);
char* search_file(char *P1, char *P2);

//BST FUNCTIONS
void insert(fd *);
void inorder(b_node *);
void displayList();
char* searchResult(char*, char*);
b_node* search(b_node *, char *);
b_node* findMin(b_node *);
void transplant(b_node *, b_node *);
void del(char *);
void mount_bst();
void unmount_bst(b_node *t);
int count_nodes_bst(b_node *n);
//char* search_bst(char *P1, char*P2);
